using System;
using System.Collections.Generic;
using MongoDB.Bson;
using MongoDB.Driver;

namespace folhapagamento
{
	public class ColaboradorRepositorio
	{
		MongoDatabase db;
		public ColaboradorRepositorio (MongoDatabase db)
		{
			this.db = db;
		}
		
		public void Inserir(Colaborador colaborador)
        {
            MongoCollection<Colaborador> colaboradores = db.GetCollection<Colaborador>("Colaborador");
			colaborador.id = ObjectId.GenerateNewId();
            colaboradores.Save(colaborador.ToBsonDocument());  
        }
		
		public void Alterar(Colaborador colaborador)
		{
			MongoCollection<Colaborador> colaboradores = db.GetCollection<Colaborador>("Colaborador");
			colaboradores.Save(colaborador.ToBsonDocument());
		}
		
		public Colaborador LerUm(ObjectId id)
		{
			MongoCollection<Colaborador> colaboradores = db.GetCollection<Colaborador>("Colaborador");
			return colaboradores.FindOneById(id);
		}
		
		public void Deletar(ObjectId id)
		{
			MongoCollection<Colaborador> colaboradores = db.GetCollection<Colaborador>("Colaborador");
			var query = new QueryDocument("_id", id);
			colaboradores.Remove (query);
		}
		
		public IEnumerable<Colaborador> LerTodos()
        {
            MongoCollection<Colaborador> colaboradores = db.GetCollection<Colaborador>("Colaborador");
            return colaboradores.FindAll();
        }
	}
}

